public class Vector {
	
	double[] cord = {1,1,1};
	public static int run = 0;
	
	public static int GetRun () {
		return run;
	}
	
	// Получение или установка занчений
	double GetSetCord (double x, int i, String action) {
		
		if (action == "get") {
			this.cord[i] = this.cord[i];
		}
		if (action == "set") {
			this.cord[i] = x;
		}
		return this.cord[i];
	}

	// Получение длинны вектора
	int GetLength() {
		return this.cord.length;
	}
	
	// Поиск минимального и максимального значения
	double GetMaxMinCord(String min_max) {
		double a = 0;
		
		if (min_max == "max") {
			this.SortCord(this.cord);
			a = this.GetSetCord(0, this.cord.length-1, "get");
		}
		if (min_max == "min") {
			this.SortCord(this.cord);
			a = this.GetSetCord(0, 0, "get");
		}
		
		return a;
		
	}
	
	// Сортировка значений вектора по возрастанию
	int SortCord(double[] arr) {
		
		for(int i = arr.length-1 ; i >= 0 ; i--){
			for(int j = 0 ; j < i ; j++){
				if( arr[j] > arr[j+1] )
					Swap(arr, j, j+1);
			}
		}
		
		this.cord = arr;
		return 0;
		
	}
	
	int Swap(double[] arr, int i, int j) {

		double t = arr[i];
		arr[i] = arr[j];
		arr[j] = t;
		
		return 0;
	}
	
	// Вычисление Эвклидовой Нормы
	static double Euclid(double[] vect) {
		
		double sum = 0;
		
		for (int i=0; i < vect.length; i++) {
			sum += vect[i] * vect[i];
		}
		
		double euclid = Math.sqrt(sum);
		
		return euclid;
	}
	
	// Умножения вектора на число
	static Vector MultipleToNumber(double[] p, double k){
		
		Vector newVect = new Vector();
		
		for (int i=0; i < p.length; i++) {
			newVect.cord[i] = k * p[i];
		}
		
		return newVect;
		
	}
	
	// Сложение Векторов
	static Vector SumVectors (double[] vect1, double[] vect2){
		Vector newVect = new Vector();
		
		if (vect1.length == vect2.length) {
			for (int i=0; i < vect1.length; i++)
				newVect.cord[i] = vect1[i] + vect2[i];
		}
		return newVect;
	}
	
	// Скалярное произведение векторов
	static double MultipleVectors (double[] vect1, double[] vect2) {
		double sum = 0;
		double sum_cord = 0;
		
		if (vect1.length == vect2.length) {
			for (int i=0; i < vect1.length; i++){
				sum_cord = vect1[i] * vect2[i];
				sum += sum_cord;
			}
		}
		
		return sum;
	}
	
	{
		run++;
	}
	
}

class TestOutPut {
	
	public static void main (String[] s) {
		
		Vector myVect = new Vector();
		Vector myVect2 = new Vector();
		
		myVect.GetSetCord(3, 0, "set"); // Установка значения 1
		myVect.GetSetCord(1, 1, "set"); // Установка значения 2
		myVect.GetSetCord(2, 2, "set"); // Установка значения 3
		
//		Vector newVect = myVect.MultipleToNumber(myVect.cord, 3); //Test умножения вектора на число
		
//		Vector newVect = myVect.SumVectors(myVect.cord, myVect2.cord); //Test сложения векторов
		
//		float sum_vect = myVect.MultipleVectors(myVect.cord, myVect2.cord); //Test умножения координат векторов
		
//		double euclid = myVect.Euclid(myVect.cord); //Test Эвклидова норма
		
//		for (int i=0; i < myVect.cord.length; i++){
//			System.out.print(myVect.cord[i]+"  ");
//		}
		
//		System.out.println("");
		
//		myVect.SortCord(myVect.cord); //Test сортировка координат вектора по возрастанию
		
//		double max_value = myVect.GetMaxMinCord("min"); //Test получение минимального максимального значенияж
		
//		for (int i=0; i < myVect.cord.length; i++){
//			System.out.print(myVect.cord[i]+"  ");
//		}

//		System.out.println(max_value);
		
	}
}